home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / dict.d < prev    next >
Text File  |  1996-04-01  |  2KB  |  111 lines

  1.  
  2.  
  3.  
  4. /*                                      
  5.  *
  6.  *      Copyright (c) 1993-1996 Algorithms Corporation
  7.  *      3020 Liberty Hills Drive
  8.  *      Franklin, TN 37067
  9.  *
  10.  *      ALL RIGHTS RESERVED.
  11.  *
  12.  *      
  13.  *      
  14.  */
  15.  
  16.  
  17.  
  18.  
  19. defclass  Dictionary : Set  {
  20.  init:    init_class;
  21. };
  22.  
  23.  
  24. #include "set1.h"
  25.  
  26.  
  27. #define LTYPE    1    /*  lookup type    */
  28.  
  29. static    gLookup_t    Lookup;        /*  locally cached  */
  30.  
  31. imeth    gAddValue, <vAdd> (key, value)
  32. {
  33.     ChkArg(key, 2);
  34.     ChkArgNul(value, 3);
  35.     return Lookup(self, key, HT_ADD, 0, LTYPE, value);
  36. }
  37.  
  38. imeth    gFindValue, <vFindValue> (key)
  39. {
  40.     object    x;
  41.  
  42.     ChkArg(key, 2);
  43.     x = Lookup(self, key, HT_FIND, 0, LTYPE, NULL);
  44.     return x ? gValue(x) : x;
  45. }
  46.  
  47. imeth    gFind, <vFind> (key)
  48. {
  49.     ChkArg(key, 2);
  50.     return Lookup(self, key, HT_FIND, 0, LTYPE, NULL);
  51. }
  52.  
  53. imeth    gChangeValueWithObj, <vChangeValue> (key, val)
  54. {
  55.     object    x;
  56.     ChkArg(key, 2);
  57.     ChkArgNul(val, 3);
  58.     x = Lookup(self, key, HT_FIND, 0, LTYPE, NULL);
  59.     return x ? gChangeValue(x, val) : x;
  60. }
  61.  
  62. imeth    gFindAddValue, <vFindAdd> (key, value)
  63. {
  64.     ChkArg(key, 2);
  65.     ChkArgNul(value, 3);
  66.     return Lookup(self, key, HT_FINDADD, 0, LTYPE, value);
  67. }
  68.  
  69. imeth    object    gDispose()
  70. {
  71.     return gDispose1(self);
  72. }
  73.  
  74. imeth    object    gDisposeAllNodes()
  75. {
  76.     return gDisposeAllNodes1(self);
  77. }
  78.  
  79. imeth    gRemoveObj, <vRemove> (key)
  80. {
  81.     ChkArg(key, 2);
  82.     return Lookup(self, key, HT_DELETE, 1, LTYPE, NULL);
  83. }
  84.  
  85. imeth    gDeepDisposeObj, gDisposeObj (key)
  86. {
  87.     ChkArg(key, 2);
  88.     return Lookup(self, key, HT_DELETE, 2, LTYPE, NULL);
  89. }
  90.  
  91. static    void    init_class(void)
  92. {
  93.     Lookup = imcPointer(Set, gLookup);
  94. }
  95.  
  96.  
  97.  
  98. /*                                      
  99.  *
  100.  *      Copyright (c) 1993-1996 Algorithms Corporation
  101.  *      3020 Liberty Hills Drive
  102.  *      Franklin, TN 37067
  103.  *
  104.  *      ALL RIGHTS RESERVED.
  105.  *
  106.  *      
  107.  *      
  108.  */
  109.  
  110.  
  111.